﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Orchard;
using MediaGarden.Models;

namespace MediaGarden.Playlists.Services
{
    /// <summary>
    /// Responsible for mapping a playlist from standard storage into a format-specific model (this model will then be serialised by an IPlaylistWriter)
    /// </summary>
    public interface IPlaylistMapper : IDependency
    {

        string FormatName { get; }

        /// <summary>
        /// Method to build the playlist (stored in context.Playlist)
        /// </summary>
        /// <param name="context"></param>
        void CreatePlaylistModel(PlaylistContext context);

        object CreatePlaylistModelItem(IMediaItem source, PlaylistContext context);

        void AddItemsToPlaylist(IEnumerable<PlaylistModelItemPair> items, PlaylistContext context);

    }
}
